home *** CD-ROM | disk | FTP | other *** search
/ Night Owl 6 / Night Owl's Shareware - PDSI-006 - Night Owl Corp (1990).iso / 015a / bootwhat.zip / S_UNIX.C < prev    next >
C/C++ Source or Header  |  1990-12-17  |  3KB  |  99 lines

  1. /* This file contains system-specific functions for generic UNIX.
  2.  * The program pfdisk.c calls these routines.
  3.  */
  4. #include <stdio.h>
  5. #include <fcntl.h>
  6.  
  7. #define extern
  8. #include "sysdep.h"
  9. #undef extern
  10.  
  11. int usage(prog)    /* print a usage message */
  12. char    *prog;    /* program name */
  13. {
  14.   fprintf(stderr,"Usage: %s dev\n\
  15. \twhere 'dev' is the device name, i.e. /dev/hd0\n\
  16. \t(The device must start on absolute sector zero.)\n",prog);
  17. }
  18.  
  19. void getGeometry(dev, c, h, s)
  20. char    *dev;        /* device name */
  21. unsigned *c,*h,*s;    /* cyls, heads, sectors */
  22. {
  23.   fprintf(stderr,
  24. "\n\tWarning:  The device \"%s\" is assumed to have:\n\
  25. \tcyls=%d, heads=%d, sectors=%d (an arbitrary guess).\n",
  26.       dev, *c, *h, *s);
  27.   fprintf(stderr,
  28. "\n\tThis program was compiled for generic UNIX and therefore\n\
  29. \tdoes not know how to determine the disk parameters.  You must\n\
  30. \tdescribe the disk geometry manually, using the 'G' command.\n");
  31. }
  32.  
  33. int getFile(name, buf, len)    /* read file into buffer */
  34. char    *name, *buf;
  35. int    len;
  36. {    /* (open, read, close) */
  37.   int devfd, retval;
  38.   
  39.   devfd = open(name, O_RDONLY, 0);
  40.   if (devfd < 0) {
  41.     fprintf(stderr,"%s: can't open for reading\n", name);
  42.     return(devfd);
  43.   }
  44.   retval = read(devfd, buf, len);
  45.   if (retval < 0)
  46.     fprintf(stderr,"%s: read failed\n", name);
  47.   close(devfd);
  48.   return(retval);
  49. }
  50.  
  51. int putFile(name, buf, len)    /* write buffer to file */
  52. char    *name, *buf;
  53. int    len;
  54. {    /* (open, write, close) */
  55.   int devfd, retval;
  56.   
  57.   devfd = open(name, O_WRONLY|O_CREAT, 0666);
  58.   if (devfd < 0) {
  59.     fprintf(stderr,"%s: can't open for writing\n", name);
  60.     return(devfd);
  61.   }
  62.   retval = write(devfd, buf, len);
  63.   if (retval < 0)
  64.     fprintf(stderr,"%s: write failed\n", name);
  65.   close(devfd);
  66.   return(retval);
  67. }
  68.  
  69. int getBBlk(devname, buffer)    /* read block into buffer */
  70. char    *devname, *buffer;    /* (open, read, close) */
  71. {
  72.   int devfd, retval;
  73.   
  74.   devfd = open(devname,O_RDONLY);
  75.   if (devfd < 0) {
  76.     printf("%s: can't open for read\n", devname);
  77.     return(devfd);
  78.   }
  79.   retval = read(devfd, buffer, SECSIZE);
  80.   close(devfd);
  81.   return(retval);
  82. }
  83.  
  84. int putBBlk(devname, buffer)    /* write buffer to device */
  85. char    *devname, *buffer;    /* (open, write, close) */
  86. {
  87.   int devfd, retval;
  88.   
  89.   devfd = open(devname,O_WRONLY);
  90.   if (devfd < 0) {
  91.     printf("%s: can't open for write\n",devname);
  92.     return(devfd);
  93.   }
  94.   retval = write(devfd, buffer, SECSIZE);
  95.   sync();
  96.   close(devfd);
  97.   return(retval);
  98. }
  99.